import store from "@/store";
import settings from "./config/settings";

// // store.commit("setLoginPopupShow", true);

function hasPermission(url) {
	let access_token = uni.getStorageSync('token');
	let phone = uni.getStorageSync('phone')
	// 在白名单中或有token，直接跳转
	if (settings.whiteList.indexOf(url) !== -1 || access_token || phone) {
		return true
	}
	return false
}

uni.addInterceptor('navigateTo', {
	// 页面跳转前进行拦截, invoke根据返回值进行判断是否继续执行跳转
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.reLaunch({
				url: '/pages/login/index'
			})
			// store.commit("setLoginPopupShow", true);
			return false
		}
		return true
	},
	success(e) {
		// console.log(e)
	}
})

uni.addInterceptor('switchTab', {
	// tabbar页面跳转前进行拦截
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.reLaunch({
				url: '/pages/login/index'
			})
			// store.commit("setLoginPopupShow", true);
			return false
		}
		return true
	},
	success(e) {
		// console.log(e)
	}
})
uni.addInterceptor('reLaunch', {
	// 关闭所有页面，打开到应用内的某个页面。
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.reLaunch({
				url: '/pages/login/index'
			})
			// store.commit("setLoginPopupShow", true);
			return false
		}
		return true
	},
	success(e) {
		// console.log(e)
	}
})
uni.addInterceptor('redirectTo', {
	// 关闭当前页面，跳转到应用内的某个页面。
	invoke(e) {
		if (!hasPermission(e.url)) {
			uni.reLaunch({
				url: '/pages/login/index'
			})
			// store.commit("setLoginPopupShow", true);
			return false
		}
		return true
	},
	success(e) {
		// console.log(e)
	}
})